#include "RPCData.h"
#include "SerializaReadWrite.h"
#include <boost/asio.hpp>
#include <boost/serialization/vector.hpp>
#include <memory>
#include <string>
#include <vector>

namespace UTILS {
class TCPClient : public std::enable_shared_from_this<TCPClient> {
private:
  SerializaReadWritePtr m_ReadWriteMgr_;
  std::string m_ip_;
  const uint32_t m_port_;
  const uint32_t m_code_;

private:
  void create_session();

public:
  TCPClient(boost::asio::io_context &, const std::string &, const uint32_t,
            const uint32_t code);
  ~TCPClient();
  void init();
};
} // namespace UTILS